"""
@version:python3
@author:ll
@file:04-QWidget-交互状态.py
@time:2022/2/12 1:50
"""
# 0、导入需要的包和模块
from PyQt5.Qt import *
import sys

class Window(QWidget):
    def paintEvent(self, evt):
        # print("窗口被绘制了")
        # return super().paintEvent(evt)
        pass

class Btn(QPushButton):
    def paintEvent(self, evt):
        print("按钮被绘制了")
        return super().paintEvent(evt)

# 1、创建一个应用程序对象
app = QApplication(sys.argv)

# 2、控件操作
# 创建控件、设置控件、事件和信号的处理
# 2.1 创建控件
window = Window()
# 2.2 设置控件
# window.setWindowTitle("交互状态[*]")
window.setWindowTitle("交互状态")
window.resize(500,500)

# window.setWindowModified(True)
# print(window.isWindowModified())

# w2 = QWidget()
# w2.show()


btn = Btn(window)
btn.setText("按钮")
# btn.pressed.connect(lambda: print("按钮被点击了"))
# btn.pressed.connect(lambda: btn.setVisible(False))
# btn.setVisible(False)
# print(btn.isEnabled())
# btn.setEnabled(False)

btn.destroyed.connect(lambda :print("按钮被释放了"))
btn.setAttribute(Qt.WA_DeleteOnClose,True) # 设置关闭时即删除对象，一般结合close使用
btn.close()

# 2.3 展示控件
window.show()
# print(w2.isActiveWindow())
# print(window.isActiveWindow())
#
# w2.raise_() # 并不是谁在前面谁就是活跃窗口

# window.setVisible(True)
# window.setHidden(False)
# 3、应用程序的执行，进入到消息循环
sys.exit(app.exec_())
